# 域名 ：guide.hpaitech.cn
# IP ： root@47.106.211.155 jszx#2025@nn



# 1) 创建持久化目录（数据/日志/配置/备份）
sudo mkdir -p /srv/mysql/{data,log,conf.d,backup}

# 2) 如果你启用了 SELinux，建议给挂载目录加标签（避免权限报错）
sudo chcon -Rt svirt_sandbox_file_t /srv/mysql

# 3) 写一个最常用的 MySQL 配置（字符集/时区/连接数等）
sudo tee /srv/mysql/conf.d/my.cnf >/dev/null <<'EOF'
[mysqld]
character-set-server = utf8mb4
collation-server     = utf8mb4_unicode_ci
max_connections      = 300
default_time_zone    = '+08:00'
# 如从 Windows 环境迁移且表名不区分大小写，可谨慎启用（新实例才有效）
# lower_case_table_names = 1

# 导入大 SQL 时可能需要
max_allowed_packet   = 512M

# 如需要允许含函数/触发器的导入
log_bin_trust_function_creators = 1

# 更稳的认证方式（某些老驱动需要），仅在确有兼容需求时启用
# default_authentication_plugin = mysql_native_password
EOF


# 1) 创建网络（可与应用共享）
docker network create guide

# 2) 启动 MySQL 8（推荐），设置 root 密码和时区
#    注意 :Z 适配 SELinux；若未启用 SELinux 可去掉 :Z
docker run -d \
  --name my-mysql \
  --restart unless-stopped \
  --network guide \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD='JHs821Adf2#4fg5@df' \
  -e TZ=Asia/Shanghai \
  -v /srv/mysql/data:/var/lib/mysql:Z \
  -v /srv/mysql/log:/var/log/mysql:Z \
  -v /srv/mysql/conf.d:/etc/mysql/conf.d:Z \
  mysql:8.0



# 进入容器里的 mysql 客户端
docker exec -it my-mysql mysql -uroot -p

# 在交互界面中执行（示例）
CREATE DATABASE guide DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'nnmoc'@'%' IDENTIFIED BY 'Uns#6ad82D25';
GRANT ALL PRIVILEGES ON guide.* TO 'nnmoc'@'%';
FLUSH PRIVILEGES;
EXIT;



# 指定要导入到的数据库名（如 mydb）
docker exec -i my-mysql mysql -uroot -p'JHs821Adf2#4fg5@df' --default-character-set=utf8mb4 guide < /srv/mysql/backup/your_dump.sql
